import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import scipy.stats as s
import datetime
import matplotlib.patches as mpatches
def printMaximumValues(maxDay,result):
print("Maximalny 15-minutovy vykon namerany dna {} : {} W".format(str(maxDay.index[0])[:11],str(round(np.amax(maxDay.values),2))))
print("Maximalny vykon bol dosiahnuty v case {}".format(str(maxDay.columns[result[1][0]])))
print("\n\n")
def UsageInDayGraph(meteringPointName,df,TplotColor='blue'):
result = np.where(df.values == np.amax(df.values))
maxDay = df.iloc[result[0][0]:result[0][0]+1]
result = np.where(maxDay.values == np.amax(maxDay.values))
ax = df.T.plot(figsize=(20,8), legend=False, color=TplotColor, alpha=0.2)
# if maxDayPlot:
# ax = maxDay.T.plot(figsize=(20,8), legend=False, color='black',ax=ax)
plt.title("Summárny denný výkon (W) pre "+meteringPointName)
plt.ylabel('Sumárny výkon')
plt.xlabel('Denný priebeh')
black_patch = mpatches.Patch(color='black', label='Maximalny denny pribeh vykonu')
plt.legend(handles=[black_patch], prop={'size': 20})
# if saveImg:
# plt.savefig('./plots/'+meteringPointName+'_KW_frequency_daySum_plot.png')
plt.show()
printMaximumValues(maxDay,result)
def createTransformedDataSetHourlyFTE(df,columnName):
df = df.drop(df.index[0])
columnString = []
columnString.append("Date")
for x in df['Date'][:4*24]:
#columnString.append(str(str(x.hour)+":"+str(x.minute)+":"+str(x.second)))
columnString.append(str(str(x.hour)+":"+str(x.minute)+":"+str(x.second)))
df2 = pd.DataFrame(columns=columnString)
i = 0
lastDay = ""
dateT = "2018-1-1"
for index, row in df.iterrows():
if lastDay != dateT:
lastDay = dateT
i += 1
df2.loc[i] = np.NaN
df2.at[i, "Date"] = dateT
kW = row[columnName]
time = str(str(row['Date'].hour)+":"+str(row['Date'].minute)+":"+str(row['Date'].second))
dateT = str(str(row['Date'].year)+"-"+str(row['Date'].month)+"-"+str(row['Date'].day))
df2.at[i, time] = kW
df2 = df2.fillna(df2.mean())
return df2
# value1 = DUBRAVY
# value2 = Plesivec
# value3 = Ratka
# value4 = Rohovce
name = "FVE"
columns = ['value_1', 'value_2', 'value_3', 'value_4', 'sum']
for column in columns:
df = pd.read_csv("data/"+name+"_yeardata.csv")
df = df[['date_1', column]]
df['date_1'] = pd.to_datetime(df['date_1'], format="%Y-%m-%d %H:%M:%S")
df = df.rename(columns={"date_1": "Date"})
df = createTransformedDataSetHourlyFTE(df,column)
dfGrouped = df.groupby('Date').sum()
UsageInDayGraph(name+" "+column,dfGrouped,dfGrouped)
# value1 = Chynoriansky_Mlyn
# value2 = Zeliezovce
name = "MVE"
columns = ['value_1', 'value_2', 'sum']
for column in columns:
df = pd.read_csv("data/"+name+"_yeardata.csv")
df = df[['date_1', column]]
df['date_1'] = pd.to_datetime(df['date_1'], format="%Y-%m-%d %H:%M:%S")
df = df.rename(columns={"date_1": "Date"})
df = createTransformedDataSetHourlyFTE(df,column)
dfGrouped = df.groupby('Date').sum()
UsageInDayGraph(name+" "+column,dfGrouped,dfGrouped)
# value1 = 50Hertz
# value2 = Amprion
# value3 = TenneTTSO
# value4 = TransnetBW
name = "WPG"
columns = ['value_1', 'value_2', 'value_3', 'value_4', 'sum']
for column in columns:
df = pd.read_csv("data/"+name+"_yeardata.csv")
df = df[['date_1', column]]
df['date_1'] = pd.to_datetime(df['date_1'], format="%Y-%m-%d %H:%M:%S")
df = df.rename(columns={"date_1": "Date"})
df = createTransformedDataSetHourlyFTE(df,column)
dfGrouped = df.groupby('Date').sum()
UsageInDayGraph(name+" "+column,dfGrouped,dfGrouped)